// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0

import { Button } from "std-widgets.slint";

TestCase := Rectangle {
    property <bool> checked <=> tb.checked;

    tb := Button {
        width: 100px;
        height: 100px;

        checkable: true;
        checked: true;
    }
}

/*
```cpp
auto handle = TestCase::create();
const TestCase &instance = *handle;
assert(instance.get_checked());

// click on button
slint_testing::send_mouse_click(&instance, 50., 50.);
assert(!instance.get_checked());

// click on button again
slint_testing::send_mouse_click(&instance, 50., 50.);
assert(instance.get_checked());

```


```rust
let instance = TestCase::new().unwrap();
assert!(instance.get_checked());

// click on button
slint_testing::send_mouse_click(&instance, 50., 50.);
assert!(!instance.get_checked());

// click on button again
slint_testing::send_mouse_click(&instance, 50., 50.);
assert!(instance.get_checked());

```

```js
var instance = new slint.TestCase();
assert.equal(instance.checked, true);

// click on button
slintlib.private_api.send_mouse_click(instance, 50., 50.);
assert.equal(instance.checked, false);

// click on button
slintlib.private_api.send_mouse_click(instance, 50., 50.);
assert.equal(instance.checked, true);
```
*/
